home *** CD-ROM | disk | FTP | other *** search
/ The Macintosh Demo Applications CD / Apple-MacintoshDemoApplicationsCD-1.0-1992.iso / More Information / QuicKeys / For Programmers Only.sea / Pascal Examples / extensions.p < prev    next >
Text File  |  1991-06-22  |  5KB  |  135 lines

  1. (*    $Workfile$ *)
  2. (*    $Revision$ *)
  3.  
  4. {    QuicKeys2™ extentions defines}
  5.  
  6. {    © 1990 CE Software, Inc.  All rights reserved.}
  7.  
  8. {    For QuicKeys 2 Extension Sample source code you have a royalty-free right }
  9. {    to include object code derived from this Sample source code in programs }
  10. {    that you develop.  You also have the right to use, distribute, and license }
  11. {    such programs to third parties without payment of any further license fees }
  12. {    to CE Software, Inc., so long as a copyright notice sufficient to protect }
  13. {    your copyright for your software in the United States or any other country; }
  14. {    is included in the graphic display of your software and on the labels }
  15. {    affixed to the media on which your software is distributed. }
  16.  
  17. {    WHEN    WHO        WHAT}
  18. {    9/5        mkg        created file}
  19.  
  20. {•••••}
  21. {    5/29    mkg        update for QK version 2.1}
  22. {•••••}
  23.  
  24. unit extensions;
  25. interface
  26.  
  27.     const
  28.     { possible selectors for user interface routine }
  29.         newUI = 0;        { you're being called to create a new extension. }
  30.                         { Initialize your private data accordingly }
  31.         initUI = 1;        { Your dialog items have been added to QuicKeys' dialog }
  32.                         { Do any setup processing during this call }
  33.         hitUI = 2;        { The user clicked or typed into one of your dialog items }
  34.         doneUI = 3;        {  Clean up your act before the dialog is disposed }
  35.  
  36.  
  37.     { bits in ExtensionQueue.flags.  all other bits are reserved and should be zero. }
  38.         PeriodicFlag = 1;    { your routine will be run every GetNextEvent,}
  39.                         { EventAvail, or SystemTask call }
  40.         AbortFlag = 2;    { set if you need to be told to stop what you're doing }
  41.         DontLoadFlag = $8000;    { set if you don't want to be loaded }
  42.  
  43.  
  44.     { possible selectors for execute routine }
  45.         initX = -1;    { your have just been loaded.  Your resource file is still open }
  46.         regularX = 0;    { execute your key. }
  47.         periodicX = 1;    { PeriodicFlag is set and it's SystemTask, GetNextEvent, }
  48.                     { or EventAvail time }
  49.         abortX = 2;    { QK is aborting/cancelling what it's doing and you have AbortFlag }
  50.                     { set.  You may NOT do things that might move memory }
  51.  
  52.  
  53.     { possible types of periodic calls }
  54.         periodicDoRun = 0;        { SystemTask }
  55.         periodicGNE = 1;        { GetNextEvent }
  56.         periodicEAvail = 2;        { EventAvail }
  57.  
  58.     { QuicKeys 2™ driver name }
  59.     QuicKeysDriverName = '.Quickeys';
  60.  
  61.     { QuicKeys 2™ driver control calls }
  62.         QK2GetGlobals =        8;
  63.         QK2PlayByName =        17;
  64.         QK2PlayByPtr =        18;
  65.         QK2GetStatus =        19;
  66.         QK2Kill =            20;
  67.         QK2OnOff =            21;
  68.         QK2Pause =            23;
  69.         QK2GetPosition =    24;
  70.         QK2SetPosition =    25;
  71.         QK2GetVersion =        26;
  72.  
  73.     { possible QuicKeys 2™ status }
  74.         QK2IsDisabled =            -1;
  75.         QK2InUserInterface =    -2;
  76.         QK2BusyNotPlaying =        -3;
  77.         QK2IsIdle =                0;
  78.         QK2InPlayFast =            1;
  79.         QK2InPlayFastPaused =    2;
  80.         QK2InRecordFast     =        3;
  81.         QK2InRecordFastPaused =    4;
  82.         QK2InPlayRT     =            5;
  83.         QK2InPlayRTPaused =        6;
  84.         QK2InRecordRT =            7;
  85.         QK2InRecordRTPaused =    8;
  86.  
  87.  
  88.     type
  89.     { extension data format }
  90.         ExtensionDataHeader = record
  91.                 strTitle: string[15];    { name of extension }
  92.                 ostCreator: OSType;        { creator of extension (filled in by QuicKeys 2™) }
  93.                 wLength: integer;         { Length of record }
  94.             end;
  95.  
  96.     { extension execute queue format }
  97.         ExecuteQueue = record
  98.                 pNext: Ptr;        { pointer to next extension (filled in by QuicKeys 2™) }
  99.                 ostCreator: OSType;        { creator of extension (filled in by QuicKeys 2™) }
  100.                 flags: integer;    { flags for QuicKeys 2™ }
  101.                 strFName: str31;        { extension's file name (filled in by QuicKeys 2™) }
  102.                 sicn: packed array[1..32] of char;    { store SICN to display here }
  103.                 lRefCon: longint;    { for extension's use }
  104.                 entryPoint: char;        { execution starts here }
  105.             end;
  106.         ExecuteQueuePtr = ^ExecuteQueue;
  107.  
  108.     { QuicKeys 2™ globals available for your use }
  109.         PublicQK2Globals = record
  110.             private1:    packed array [1..524] of char;
  111.      
  112.             wDestVol:    integer;        { System folder volume }
  113.             lDestDirID:    longint;        { System folder dirID }
  114.             lPrefsDir:    longint;        { Preferences folder dirID }
  115.             lQKDir:        longint;        { QuicKeys folder dirID }
  116.             lKeySetDir:    longint;        { KeySet folder dirID }
  117.             lMacroDir:    longint;        { Macros folder dirID }
  118.             lSeqDir:    longint;        { Sequences folder dirID }
  119.             lExtDir:    longint;        { Extensions folder dirID }
  120.             lClipDir:    longint;        { Clipboards folder dirID }
  121.     
  122.             private3:    packed array [1..70] of char;
  123.     
  124.             pExtensions:    ExecuteQueuePtr;    { queue of externals loaded in at boot time }
  125.  
  126.             private4:    packed array [1..1338] of char;
  127.      
  128.              wCurKeyType: integer;        { type of the key in ucaCurKey }
  129.             ucaCurKey:    packed array [1..2048] of char;    { This is a key being executed }
  130.             ucaTypeString: packed array [1..256] of char;    { put a string here for QK2 to type.
  131.                                             Make sure that ucaTypeString[0] = 0 before you do. }
  132.         end;
  133.  
  134. implementation
  135. end.